LINQ তে Average এবং Aggregate দুটি গুরুত্বপূর্ণ মেথড, যা ডেটার উপর কিছু গণনা (calculation) বা সংক্ষেপণ (aggregation) করার জন্য ব্যবহৃত হয়। এই দুটি মেথড সাধারণত সংখ্যা বা সিরিজের উপর পরিসংখ্যানিক অপারেশন করার জন্য ব্যবহৃত হয়।
Average মেথডটি একটি সংখ্যার সংগ্রহের (যেমন, লিস্ট বা অ্যারে) গড় (mean) হিসাব করতে ব্যবহৃত হয়। এটি একটি সংখ্যা বা সংখ্যার বৈশিষ্ট্য (যেমন, ফিল্ড বা প্রপার্টি) নেওয়ার মাধ্যমে গড় মান গণনা করে।
List<int> numbers = new List<int> { 10, 20, 30, 40, 50 };
// গড় মান বের করা
double average = numbers.Average();
Console.WriteLine("Average: " + average); // Output: 30
এখানে, Average()
মেথডটি সংখ্যাগুলির গড় বের করেছে, যা ১০, ২০, ৩০, ৪০, ৫০ এর গড় মান ৩০।
যদি আপনার একটি অবজেক্টের সংগ্রহ থাকে, তবে আপনি সেই অবজেক্টের কোনো নির্দিষ্ট প্রপার্টির গড় মান বের করতে পারেন।
List<Person> people = new List<Person>
{
new Person { Name = "Alice", Age = 25 },
new Person { Name = "Bob", Age = 30 },
new Person { Name = "Charlie", Age = 35 }
};
// ব্যক্তিদের গড় বয়স বের করা
double averageAge = people.Average(p => p.Age);
Console.WriteLine("Average Age: " + averageAge); // Output: 30
এখানে Average(p => p.Age)
ব্যবহার করে Age প্রপার্টির গড় বয়স বের করা হয়েছে।
Aggregate মেথডটি একটি ডেটা সংগ্রহের উপর একটি কাস্টম aggregation operation (যেমন, যোগফল, গুণফল, ইত্যাদি) প্রয়োগ করতে ব্যবহৃত হয়। এটি আরও শক্তিশালী এবং নমনীয়, কারণ আপনি এটি দিয়ে যেকোনো ধরনের কাস্টম অপারেশন করতে পারেন, যেমন সমস্ত মান যোগ করা, গুণফল বের করা, বা অন্য কোন ধরনের সমষ্টি তৈরি করা।
List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
// সমস্ত সংখ্যার যোগফল বের করা
int sum = numbers.Aggregate((total, num) => total + num);
Console.WriteLine("Sum: " + sum); // Output: 15
এখানে, Aggregate((total, num) => total + num)
এর মাধ্যমে প্রতিটি সংখ্যার যোগফল বের করা হয়েছে।
Aggregate
মেথডটি একটি ল্যাম্বডা এক্সপ্রেশন গ্রহণ করে, যেখানে প্রথম আর্গুমেন্টটি হলো চলমান ফলাফল (যা প্রথমে ডিফল্ট মান হিসাবে প্রাথমিক মান গ্রহণ করে), এবং দ্বিতীয় আর্গুমেন্টটি হলো পরবর্তী ডেটা উপাদান। এই অপারেশনটি চলতে থাকে যতক্ষণ না সব উপাদান সম্পূর্ণ হয়ে যায়।List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
// সকল সংখ্যার গুণফল বের করা
int product = numbers.Aggregate((total, num) => total * num);
Console.WriteLine("Product: " + product); // Output: 120
এখানে, Aggregate((total, num) => total * num)
ব্যবহৃত হয়েছে সকল সংখ্যার গুণফল বের করার জন্য।
Aggregate মেথডটি একটি প্রাথমিক মান (initial value) গ্রহণ করতে পারে, যা প্রথম অপারেশন চালানোর সময় ব্যবহার করা হয়।
List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
// প্রাথমিক মান 10 দিয়ে যোগফল বের করা
int sumWithInitialValue = numbers.Aggregate(10, (total, num) => total + num);
Console.WriteLine("Sum with initial value: " + sumWithInitialValue); // Output: 25
এখানে, Aggregate(10, (total, num) => total + num)
ব্যবহার করে ১০ যোগ করার মাধ্যমে প্রথমে ১০ মান ব্যবহার করা হয়েছে এবং তারপর সমস্ত উপাদানের যোগফল যোগ করা হয়েছে।
Select এবং Aggregate মেথড একত্রে ব্যবহার করে আপনি ডেটাকে ফিল্টার করে পরবর্তীতে কাস্টম অ্যাগ্রিগেশন করতে পারেন।
List<Person> people = new List<Person>
{
new Person { Name = "Alice", Age = 25 },
new Person { Name = "Bob", Age = 30 },
new Person { Name = "Charlie", Age = 35 }
};
// ব্যক্তিদের বয়সের যোগফল বের করা
int totalAge = people.Select(p => p.Age).Aggregate((total, age) => total + age);
Console.WriteLine("Total Age: " + totalAge); // Output: 90
এখানে, Select(p => p.Age)
দিয়ে প্রথমে Age প্রপার্টি নির্বাচিত করা হয়েছে এবং তারপর Aggregate
মেথড ব্যবহার করে তাদের যোগফল বের করা হয়েছে।
common.read_more